package jxau.jwgl.service;

import jxau.jwgl.api.JWGLServerException;
import jxau.jwgl.commons.entity.User;

import java.util.Map;

/**
 * UserService
 *
 * @author LongShu 2017/06/04
 * @see jxau.jwgl.api.UserApi
 */
public interface UserService {

    /**
     * 登录教务系统
     *
     * @param user
     * @return
     * @throws ServiceException
     */
    User login(User user) throws JWGLServerException, ServiceException;

    /**
     * 获取用户在教务系统的完整信息
     *
     * @param loginUser 登录的用户
     * @param username  学号
     * @return 用户信息
     */
    Map<String, String> userInfo(User loginUser, String username) throws JWGLServerException;

    /**
     * 获取本客户端的 GUID
     *
     * @param username 学号
     * @return GUID
     */
    String getGuid(String username) throws JWGLServerException, ServiceException;

    /**
     * 检查GUID
     *
     * @param username 学号
     * @return 服务端的ticket
     */
    String checkGuid(String username) throws JWGLServerException, ServiceException;

    /**
     * 退出教务系统
     *
     * @param username 学号
     * @throws ServiceException
     */
    void exit(String username) throws JWGLServerException, ServiceException;

}
